{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial Robustness Toolbox for Poisoning Attacks on Support Vector Machines (SVM) using Scikitlearn's SVC"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this notebook, we will learn how to use ART to run a poisoning attack on Support Vector Machines. We will be training our data on a subset of the IRIS dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"../utils/data/images/svm_poly.gif\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import HTML\n",
    "HTML('<img src=\"../utils/data/images/svm_poly.gif\">')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import absolute_import, division, print_function, unicode_literals\n",
    "\n",
    "import os, sys\n",
    "from os.path import abspath\n",
    "\n",
    "module_path = os.path.abspath(os.path.join('..'))\n",
    "if module_path not in sys.path:\n",
    "    sys.path.append(module_path)\n",
    "\n",
    "from sklearn.svm import SVC, LinearSVC\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.estimators.classification import SklearnClassifier\n",
    "from art.attacks.poisoning.poisoning_attack_svm import PoisoningAttackSVM\n",
    "\n",
    "np.random.seed(301)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Utility Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_duplicates(x_train):\n",
    "    \"\"\"\n",
    "    Returns an array of booleans that is true if that element was previously in the array\n",
    "\n",
    "    :param x_train: training data\n",
    "    :type x_train: `np.ndarray`\n",
    "    :return: duplicates array\n",
    "    :rtype: `np.ndarray`\n",
    "    \"\"\"\n",
    "    dup = np.zeros(x_train.shape[0])\n",
    "    for idx, x in enumerate(x_train):\n",
    "        dup[idx] = np.isin(x_train[:idx], x).all(axis=1).any()\n",
    "    return dup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data():\n",
    "    iris = load_iris()\n",
    "    X = iris.data\n",
    "    y = iris.target\n",
    "    \n",
    "    X = X[y != 0, :2]\n",
    "    y = y[y != 0]\n",
    "    labels = np.zeros((y.shape[0], 2))\n",
    "    labels[y == 2] = np.array([1, 0])\n",
    "    labels[y == 1] = np.array([0, 1])\n",
    "    y = labels\n",
    "    \n",
    "    n_sample = len(X)\n",
    "    \n",
    "    order = np.random.permutation(n_sample)\n",
    "    X = X[order]\n",
    "    y = y[order].astype(np.float)\n",
    "    \n",
    "    X_train = X[:int(.9 * n_sample)]\n",
    "    y_train = y[:int(.9 * n_sample)]\n",
    "    train_dups = find_duplicates(X_train)\n",
    "    X_train = X_train[train_dups == False]\n",
    "    y_train = y_train[train_dups == False]\n",
    "    X_test = X[int(.9 * n_sample):]\n",
    "    y_test = y[int(.9 * n_sample):]\n",
    "    test_dups = find_duplicates(X_test)\n",
    "    X_test = X_test[test_dups == False]\n",
    "    y_test = y_test[test_dups == False]\n",
    "    return X_train, y_train, X_test, y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train, attack_idx, x_val, y_val, kernel):\n",
    "    # Create ART classifier for scikit-learn SVC\n",
    "    art_classifier = SklearnClassifier(model=SVC(kernel=kernel), clip_values=(0, 10))\n",
    "    art_classifier.fit(x_train, y_train)\n",
    "    init_attack = np.copy(x_train[attack_idx])\n",
    "    y_attack = np.array([1, 1]) - np.copy(y_train[attack_idx])\n",
    "    attack = PoisoningAttackSVM(art_classifier, 0.001, 1.0, x_train, y_train, x_val, y_val, max_iter=100)\n",
    "    final_attack, _ = attack.poison(np.array([init_attack]), y=np.array([y_attack]))\n",
    "    return final_attack, art_classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, title):\n",
    "    import matplotlib.pyplot as plt\n",
    "    import warnings\n",
    "    warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "    plt.figure()\n",
    "    plt.clf()\n",
    "\n",
    "    get_color = lambda idx: 'orange' if np.argmax(idx) == 1 else 'blue'\n",
    "    for i_class_2 in [np.array([0, 1]), np.array([1, 0])]:\n",
    "        mask = np.all(y_train == i_class_2, axis=1)\n",
    "        plt.scatter(x_train[mask][:, 0], x_train[mask][:, 1], s=20, zorder=2, c=get_color(i_class_2))\n",
    "    # plt.axes.set_aspect('equal', adjustable='box')\n",
    "\n",
    "    for sv in model.support_vectors_:\n",
    "        plt.scatter(sv[0], sv[1], s=200, linewidth=1, facecolors='none', edgecolors='lightgreen',\n",
    "                             zorder=2)\n",
    "    h = .01\n",
    "    x_min, x_max = 1.5, 8.5\n",
    "    y_min, y_max = 0, 7\n",
    "\n",
    "    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "    Z = model.decision_function(np.c_[xx.ravel(), yy.ravel()])\n",
    "    Z = Z.reshape(xx.shape)\n",
    "    plt.pcolormesh(xx, yy, Z > 0, cmap=plt.cm.Paired)\n",
    "    plt.contour(xx, yy, Z, colors=['k', 'k', 'k'],\n",
    "                linestyles=['--', '-', '--'], levels=[-.5, 0, .5])\n",
    "\n",
    "    x_values = []\n",
    "    y_values = []\n",
    "    for adv in x_train_adv:\n",
    "        x_values.append(adv[0, 0])\n",
    "        y_values.append(adv[0, 1])\n",
    "    x_values = np.array(x_values)\n",
    "    y_values = np.array(y_values)\n",
    "    plt.scatter(x_values, y_values, zorder=2,\n",
    "                         c='red', marker='X')\n",
    "    plt.axes().set_xlim((x_min, x_max))\n",
    "    plt.axes().set_ylim((y_min, y_max))\n",
    "\n",
    "    plt.axes().set_title(title)\n",
    "    plt.axes().set_xlabel('feature 1')\n",
    "    plt.axes().set_ylabel('feature 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load Data\n",
    "\n",
    "In this example, we take two features from the IRIS dataset and train an SVM."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data, train_labels, test_data, test_labels = get_data()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualize Effect of Attack on SVM\n",
    "\n",
    "After training the SVM on just one attack point, a noticeable change occurs in the decision boundary for the classifier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Clean model accuracy on train set (68 samples): 0.7352941176470589\n",
      "Poison model accuracy on train set (68 samples): 0.7352941176470589\n",
      "Clean model accuracy on test set (10 samples): 0.6\n",
      "Poison model accuracy on test set (10 samples): 0.6\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEWCAYAAABsY4yMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3hUxdvG8e9ztiSb3ntC7yBFekfsir2L5WcBFXsXURCx904RFRWl2bCioogUCyBNKdIDCaT3zdZ5/9gFAi8luxAkMJ/r2stk98ycSYh3Js/OmSNKKTRN07Rjj/FfD0DTNE2rGzrgNU3TjlE64DVN045ROuA1TdOOUTrgNU3TjlE64DVN045ROuC1456IjBGRAhHZ/l+Ppa6JyCYROfm/Hod2ZOiA1w4bEektIgtEpFREikRkvoh0EZEeIlIpIpH7aPOXiNwqIg1FRInIkr1eTxARp4hsOsB5lb//Cn9QfywiMbUccyZwD9BaKZUS4JccNBEZ5R93172ev1ZE5u313HsiMuZIjU07duiA1w4LEYkCvgJeA+KAdOAxwKGUWghsBS7cq01boDXwcY2nw/3P73QFsLEWQ2ivlIoAGgOxwKhaDr0BUKiUyqvl8buIiDnQNv52AlwFFAHXBNOHptWGDnjtcGkOoJT6WCnlUUrZlVLfK6WW+1+fBFy9V5urga+VUoU1nvuAPUPvauD92g5CKVUGzMT3iwMAEYkWkYkikisi2/wlGZO/VPEDkOaf/b/nP/4cEflbREpEZI6ItKrR1yYReUBElgOVImIWkTQR+URE8kVko4jcfpBh9gHSgDuAy0TE6u+7FTAW6OEfT4mIDAGuBO73P/el/9gHRWS9iJSLyD8icn7NE4jIjSKyqsbrnfYehIi09I/3stp+f7V6RimlH/pxyA8gCijEF+RnALF7vZ4JuIAs/+cGvln9ef7PGwLK/99swAS0AtYAJwObDnBuBTT1fxwLfA+MrvH658A4IBxIAv4Ahvpf6w9srXFsc6ASOAWwAPcD6wCr//VNwFL/12Pzfx2LgUcBK76/IDYApx1gvBOBaf7+C4ELarx2LTBvr+PfA8bs9dzF+H5JGMCl/jGn1nhtG9AFEKAp0KDG+E8GOgFbgLP/658d/ai7h57Ba4eF8s2ce+ML2wlAvojMFJFk/+vZwC/AYH+TgUAo8PVeXW1ld6hfQ+1n70tEpAQoALLwBTr+858B3KmUqlS+UsxLwP5mrZfi+6viB6WUC3geX5D3rHHMq0qpbKWUHV+IJiqlRiulnEqpDf6vf5/9i0gYvgD+yN//DIIo0yilpiulcpRSXqXUVOBfYGc9/wbgWaXUn8pnnVJqc43mffD9lXONUuqrQM+t1R864LXDRim1Sil1rVIqA2iLb4b5co1DapZprmJ3yO3tfXwz2cuBD2t5+k5KqRh8vzTeAn4VkVB8NXYLkOsveZTgC/+k/fSTBuwKQ6WUF99fFOk1jsmu8XEDfCWekhr9DweS99P/+YAb+Mb/+WTgDBFJrOXXCYCIXC0iS2ucsy2Q4H85E1h/gOY3AQuUUj8Hck6t/tEBr9UJpdRqfKWFmm+Yfgqki8gA4AL2Pzv/BDgL2LDXzLM253UBbwON/OfOBhxAglIqxv+IUkq12U8XOfhCG9j1hmgmvpLHrtPU+Dgb2Fij7xilVKRS6sz99H8NEAFs8S/LnI7vF9Dl++h7X+dDRBrg+yvhViDe/4ttJb5yzM4xNdnP+cEX8Fki8tIBjtGOATrgtcPC/4bdPSKS4f88E19o/bbzGKVUJb6SxLvAZqXUon315T/uJHylhkDHYQL+B9jx/YLIxVeTf0FEokTEEJEmItJvP11MA84SkYEiYsG3hNIBLNjP8X8AZf43Xm3+N2/bikiXfYwtHV9p6mygg//RHniG3WWaHUDGzjdeazzXuMbn4fhCP9/f7//Y8xfp28C9InKi+DT1/1LYqRw4HegrIk/v5+vSjgE64LXDpRzoBvwuIpX4gn0lvoCsaRK+GfIBa+tKqUVKqQOVGfa2TEQqgGJ8YXm+UqrI/9rV+N4A/cf/+gwgdT/nXYPvfYLX8NXzBwGDlFLO/Rzv8R/TAd9yzgJ8ARu9j8OvApYq3+qi7TsfwKvACf7loT8BfwPbRaTA324i0NpfjvlcKfUP8AKwEF/4twPm1xjTdOAJ4CN8/y6f41u6WnPcJfjeSD5DRB7f19em1X+ilL7hh6Zp2rFIz+A1TdOOUXUW8CLSwv8u/85HmYjcWVfn0zRN0/Z0REo0/je+tgHdAl0VoWmapgXnSJVoBgLrdbhrmqYdOUFtlhSEy9hzQ6ld/HttDAEINcmJ6dEhR2hIxyen20uZw0NCmBlEDt5gH8qq3RCTSkR0rTZs/H+UUhTuyCE6LhGL1XrwBpqm7dfGVSsKlFL7vFCuzks0/vW8OUAbpdSOAx3bNN6mXjytYZ2O53j35Zoi3l6SR98GUdzZPRWTEVjIe5Vi5M/ZrMiv5ubRL9P7zPMP3mgvuVs2MvLac7GGhDJi3FRSshoF3IemaT5XdMpcrJTqvK/XjkSJ5gxgycHCXTsyBrWI46r2iczdXMbLv+Xi8Qb2C94Q4eG+GbRJCOWtR+9k3jefBTyG1KxGjBg7FaejmqeGDcbldATch6ZpB3ckSjSXs5/yjPbfuKh1PAAfLMsHCHgmH2o2eKRfBmN+2cpbj94JStH7rAsCGkNW81aMGDuVvJwtWKy6LKdpdaFOZ/D+nfNOwbcHiXYUuah1PFe3TyQp3EKAVRpgd8i3TQjlrZF3Me/rwP+Js5q3onP/0wD48+fvyN1Sm/t6aJpWW3U6g1dKVQHxdXkOLXgXtt79T7OjwklCmCWgmXzIzpn83K28NfIulFL0OfvCgzfcS7W9inefehgRYcSE6aTqmrymHRb6SlaNMoeH+77fzIsLcwKuyYeYDUb0zaBdYihjR97Fr199EvD5Q21hPPjGh7hdLsbceLGeyWvaYaIDXiMqxMR5reKYt6X80EI+ycbYkXcx96sZAY8hq1krRoyfisft9oX85g0B96Fp2p50wGsAXNAqnms7JDJvSzkvHGLIjxt5d1Ahn9m0JQ+Pm4Lb5eL3H/e+0ZOmaYE6Uhc6afXA+a18Nfn3lubTOLZo12qb2toZ8k/M3cq4kXeDUvQddHFAfWQ2bcnTU78nJsF3wyWlFBLkBVmadrzTM3htD+e3iue+XmkMah4bVPsQs8HDfTM4IcnGuFH3MPfL6QH3EZuYjIiwdcNaHr7yTHI2BbItvKZpO+mA1/6f3llRhJgNKpweJi/Pxx1Euebhvhm0T/aF/C8zpwU3EKUoytvOmCGX6JDXtCDogNf2a1FOBdP+LuSFBTlBhfzwPr6QH//Yvcz5YmrA589o0oIR46fi9XoZM+QStm1cF3AfmnY80wGv7Vf/htFc1zGJBdnlPH+IIT9h9H3M+XxKwGPIaNx8V8g/MfRSdmRvCrgPTTte6YDXDujclnFc1zGJhYcc8mFMePz+Qwr5lp26Ee1/81XTtIPTAa8d1Lkt47i+YxLrCu2UVrsDbu+ryafT4RBD/van3yTUFkZVRbm+GErTakEHvFYr57SM49UzGxEfZsGrVMAzeavJYHiNkP85iJDfadzIuxl9/YVs2/Bv0H1o2vFAB7xWa2EWE0opxi7awXPztwUd8if06MeE0fcFHfKXDLsfgDFDL9Uhr2kHoANeC4iIkBll5betFTw3fxsuT+AhPyIjh/Y9+/tC/rPAd5JOb9yMEeOnISKMGXopWzesDbgPTTse6IDXAjaoRRw3dEryhfyC4EP+xNRwX7kmmJBv1JSHx01FRHjrkTs5EjeP17T6Rm9VoAVlUIs4RGDC4jxe+S2He3ulB9TeajJ4sE86T/+6jQmP34/X62XghVcG1MfOkDeZTHo7A03bBx3wWtDObh6HIKRGWIJqvyvk521j4hMPAgQV8uDbs2baG8/S64zzyGjSIqjxaNqxRpdotENyVvNYOqVFALB0e2VQ5ZqHeqdzYlo4E594kNkzPgxqHCUFefwycxpjhlzK1vVrgupD0441OuC1w2JbmZPH5mTzbBBvvFr8Id85LZyJTz4UVMjHJiYzYvw0DJOJMUMuJXvd6oD70LRjjQ547bBIj7JyQ6dk/thWEXTIP1gj5H+c8UHAY0hr2IRHJkzHZDbzxNDLdMhrxz0d8Nphc1bzWIZ29oX8M/O34fJ4A2q/M+S7pIXzzpPDgwr51AaNGTF+GiFh4RTuyA24vaYdS3TAa4fVmc1iualzMn9uq2Dh1oqA21tMBg/UCPkfpr8fcB+pDRrzwqc/06HXAACqqyoD7kPTjgU64LXD7oxmsTx/agP6NogKqv2ukE+P4N2nHg4q5M0WKwC///g1d53bhy3/rgpqLJpWn9VpwItIjIjMEJHVIrJKRHrU5fm0o0ezeBsAG4qqeWlhTlDlmgd6pdGp78m+kJ82KahxZDVvjclk4omhl7FlrQ557fhS1zP4V4DvlFItgfaA/j/sOLO+uJo5m8p4el5wNfnhKdl0TY/g3adH8P3U9wI+f2pWI0aMn4bFamXMTZfqkNeOK3UW8CISBfQFJgIopZxKqZK6Op92dDqlSQw3d0lmUU4lTwUV8sL9vdLplh7Be888ElTIp/hD3moNYcxNl1JSkBdwH5pWH9XlDL4xkA+8KyJ/icjbIhK+90EiMkREFonIorIg9hrXjn6nN43lli4pLD6EkL+vRsjPmvJewGPYGfLnXHsL0fGJAbfXtPqoLgPeDHQC3lJKdQQqgQf3PkgpNV4p1Vkp1TkqVO+ccKw6rWkMt3RJASCYbcFqhvykZx9h1pR3A+4jJasRZ199EyLClrWr2Lz2nyBGomn1R10G/FZgq1Lqd//nM/AFvnacOq1pDI/0zcBqMqhwenAGO5PPiGDSs48GFfLg27dm7Ki7eWLopWxa83dQfWhafVBnAa+U2g5ki8jOnZ8GAnrKdJwTEdxexaM/Z/P0r9uCC/me6XT3h/x3H78T1BjueOYtQmxhPHnTZTrktWNWXa+iuQ2YLCLLgQ7Ak3V8Pq0eMBvC6U1jWJxbyVPBhnwvX8i//9xIvv1oYsBjSM5s6LvidWfIr14ZcB+adrSr04BXSi3119dPUEqdp5QqrsvzafXHqU1iGNY1hSVBhrzZ8IV8j4wIPnh+VHAhn9FgV8h/OemtgNtr2tFOv6up/WdObRKDAG/8sZ0Ji3cwrGtqQO3NhnBvr3Sen7+ND54fBUpxxpU3BNRHckYDRk78lKjYuIDaaVp9oLcq0P5TpzSJ4e4eaVzSJiGo9jtDvkdmJB+88BjfTn474D4SUtOxhtqoLC/l6WGD2bhqRVBj0bSjjQ547T/Xt2EUieEWvEoxc3URDnfg5Zp7e6btCvlvPpwQ1DiqysvJ2bSeJ2++XIe8dkzQAa8dNVbl23nnrzye/HVb0CHfMzOSD18cHVTIJ6Zl8MiEadjCI3XIa8cEHfDaUaNNUhi3dUth2fZKnvx1a1Ahf0+NkP/6g3EBjyExLXNXyD9xkw55rX7TAa8dVQY2jvGHfBVPzA0+5HtlRjL5pTGHFPINW7QmIjom4PaadrTQq2i0o87Axr5QHb94B5tLHTT3bz1cWztDngU5TH5pDEopzr76poD6SEzLZMT4aQB4vV7yc7JJzmgQUB+a9l/TM3jtqDSwcQzjBjXZFe5eFdgONqadM/msSD56+Qm+en9s0GOZMfYFHr7yLDb8syzoPjTtv6ADXjtqxfg3n/t+fQmPzckOuFxjMoR7euwO+S8nBRfyA867nPCoaJ686QrW/700qD407b+gA1476pkNYdn2KsYEUZPfGfK9syL5+JXgQj4xLYMR46YSHh3DUzdfqUNeqzd0wGtHvZMaRXNH91RW7Ag+5O/ukUafnSH/XuDbEiSmZfDI+GmER8fwwl3X47DbA+5D0440/SarVi8MaBSNAC//lsuYuVsZ1T8TkyG1bm8yhLt6pAE5fPyqb8+7QdfeHNAYElLTeWT8NHZkbyLEFtgbv5r2X9ABr9Ub/RtFA1BodwcU7jvtDHmRXD5+9UkUinOuvSWgPhJS00lITQdg7lczSGvYhKZtOwY8Fk07EnTAa/XKzpAH2FRSTUqElVBz7SuNJkO4s3sq7lYDmPLqU6AU5/xvWMDjcDqq+WzCK5QVF/LQm5N1yGtHJV2D1+qlSqeHEbO38PgvW6kOoiZ/b/Rq+jaIYsprT/PFO68HfH5rSCgjxk0lMiaWp265knUr/gq4D02razrgtXop3GrixhOT+Se/KuiQv7N7Kn0bRDH19Wf4fOJrAY8hPiWNRybMIComjqeGXcm/y5cE3Iem1SUd8Fq91a9hNHd2T/WHfHbQId+vQRTT3ng2uJBPTmXEhOlExcSx+q8/Am6vaXVJ1+C1eq1fw2gE4aXfcvhsVSGXt0sMqL3JEO7onooITHvjWVCK8264PaA+4pNTefLj77CFRwDgdjkxW6wB9aFpdUHP4LV6r2/DKEYPyOSi1sHdNMRkCLd3S6V/wyimvfkcn7/9asB97Az3TatXcvd5/Vi7bHFQY9G0w0kHvHZMaJccjsUklFa7efOP7dhdgZdraob8Z2+/EtQ4ImPjMZnNPHPrYB3y2n9OB7x2TFlbWM0PG0oY/Uv2IYX89Def59MJLwd8/vjkVB6ZMI2ouAR/yC8KuA9NO1x0wGvHlC7pEdzdI43VBfZDCvkBDaOY8dYLQYV8XJIv5KPjE3l62GC2/Lsq4D407XCo04AXkU0iskJEloqInspoR0SfBlGHHPK3dUvlpEb+kB8ffMj3HXQxqQ0aB9xe0w6HI7GKZoBSquAInEfTdunTIAoR+HhFAXa3F5slsLmMyRBu7ZoK+PaDV0px4dC7AuojNjGFax94HIDykmJ2bN2kr3jVjii9TFI7ZvXOiqJ7RiRmQ/B4FS6vCnhbA1/IC5+MexEg4JDf6Z2nhrNs/s/c/9r7tOzYNag+NC1QdV2DV8D3IrJYRIbs6wARGSIii0RkUVm1u46Hox1vzP5NyV7/I5dRP2dT5fIE1N4X8imc1CiaT8a9yIyxLwY1jqvvHUlsYjLP3na1viBKO2LqOuB7KaU6AWcAw0Sk794HKKXGK6U6K6U6R4XqPyi0utE5LYI1hXYem7M1qJC/rVsKAxtF8+n4l4IK+djEFEaMn0ZsUgrP3HoVq5f8HnAfmhaoOg14pVSO/795wGeA/ttU+0/0yorivl5prA0y5A0Rbu2WwsmN/SH/lq8uH4jYxGRGjJtKXHIqk559FK83sDd/NS1QdTZlFpFwwFBKlfs/PhUYXVfn07SD6ZkZxX294Ln5OTwzL4dR/TMQqf2+8oYIw7qmAPDphJdRKC666Z6A+tgZ8l6PB8PQq5S1ulWXNZFk4DP/D78Z+Egp9V0dnk/TDqpnZhT39xKiQkwBBfNONUP+swm+q12DCXkAr8fDu8+MoOdp59LqxO4Bj0XTDqbOAl4ptQFoX1f9a1qwemRG7vp4/pYyOqaGE2Yx1br93iGvlOLim+8N+BdGZXkZqxb9xryvP+X+VyfpkNcOO/03onbc2lHh5MWFOYz6OZtKZ+A1+WFdUzilSTSfv/0q0998LuCafGRMLCPGTyUhJZ1nb7uaVYsXBtRe0w5GB7x23EqOsHJvz3TWFVXz2JzgQv6WLv6Qn/ga0954NuCQj0lI4uFxU0hIzeDZ267RIa8dVjrgteNaj8xI7uvlC/lRhxDypzaJ5ot3Xg865EeMn0p642Z4vYG11bQD0QGvHfd6ZEZyf+90NhRXsyinIuD2hgg3d0nhtCYxfPHO60x9/ZmAQz46PpHR739Jmy49ASgpyAt4HJq2Nx3wmgZ0z4jkjbMa069hNEDAAW2IcFOXZE5rEsPMd98IKuR3LptcMOsL7jq3D3//uSCg9pq2Nx3wmuaXEuG7zd6q/CpG/pxNRRDlmpu6JHNa0+BDHqBNl14kpmXw3B3X6JDXDokOeE3bS5nDw9/5VYyaE2TId07mdH/IT3nt6cDLNXEJPDxuKknpWb6Q/2N+QO01bScd8Jq2l24ZkdzfK52NxdWMCnImP9Qf8l++9yZTXn3q0EL+zmsp3J4TUHtNAx3wmrZP3TIieaB3OhtLqoPahXKPkJ/01iGF/LX3P058SlpAbTUN9H7wmrZfXdN9IT9vczlWU+BzoZ3lGgG+nPQWSikuv2N4QFe8Rscl0P+8ywBYt+Ivqqsqadutd8Bj0Y5POuA17QC6pkfSNd23tUGJ3Y3ZJERYa7+tgfhn8gh89f5YlFJccefDAW9roJRi8kuPs2HVcu57+T0d8lqt6BKNptWCx6sYNSc7qNU1IsLQE5M5o1kMX38wjo9efiLgco2IcNcLE0jJbMRzd17Lit9/Dai9dnzSAa9ptWAyhMEnJLKpxMGjhxDyZ+4K+TEBh3xUbDwPj5tCSmYjnr/zfzrktYPSAa9ptdQ5PYKH+qSz+RBCfsiukB9/CCE/ldSsxvwyc1pAbbXjj67Ba1oAOqf5Qv6pX7cxbtEO7ukZ2OqWnSEvwNcfjEcpxZV3PRJQTT4qNo4R46cSGhYBgNfr1TcP0fZJ/1RoWoA6p0XwaL8MruuYFFR7EeHGE5M5q3ks33w4gQ9fHB3wTD4iOhazxUJpUQGPXj2I5Qt/CWos2rFNB7ymBaF9SjixNjNur+KDZfmUOwIv19zYKYmzm8fy7eS3gwp5Xz8GHrebF+66nmUL5gTcXju26YDXtEOwsbiaL1YX8ejPW4IK+RtqhvwLjwVRk49j+NgppDVswot336BDXtuDDnhNOwTN4m0M75NOdqmTR34KPuQHNY/l248mBhXykTGxvpBv1JQX775B712j7aIDXtMOUae0CIb3SWdrmS/ky4II+etrhPwHzwcZ8m99zIn9TiGtUdOA2mrHLh3wmnYYdEqLYHjfdIrsbnZUOANuvyvkW8Ty3ccTef/5UUGF/O3PvEVsYjIet5sN/ywPeBzasWW/AS8imSIyRUR+FZHhImKp8drnR2Z4mlZ/dEqNYPw5TWgWbwPA5fEG1F5EuL5jEue0iGXWx+/w/nMjg3rjFeCT8S8x6n/ns3T+z0G1144NB5rBvwPMAW4DUoFfRCTe/1qD2p5AREwi8peIfBX0KDWtngg1+/6X+nJNEfd9v5kyhzug9iLCdTtDfsq7QYf8mVfeQEaTFrx49w38Ne+ngNtrx4YDBXyiUmqsUmqpUuo24E1grog0AQL5ibsDWHUog9S0+iYjKoRt5U4e+Sk76JA/1x/yk559NKh18sPfmkxGkxa8dM+NOuSPUwcKeIuIhO78RCn1Ib6wnoVvRn9QIpIBnAW8fSiD1LT6pmNqOA/3ySDnEEL+fx2TOK9lHN9PfS/4kB/7ERlNWvDWo3dirwz8huJa/XaggH8b6FbzCaXUj8DFwMpa9v8ycD8QWDFS044BHfYKeZcn8B0kr+2QuCvk33vmkcBDPiqG4WM/4v5XJ2ELjwiorVb/7XcvGqXUS/t5/i/glIN1LCJnA3lKqcUi0v8Axw0BhgAkhumtcbRjS4fUcB7um0FuuROLKbA94GF3yAN8Pm0SANc+8HhAe9dERMXQtG1HAGZNeY/EtAw69T054LFo9U9dLpPsBZwjIpuAKcBJIvLh3gcppcYrpTorpTpHheqA1449HVLCOaNZLACrC+yUVgderrm2QyLnt4zjh2mTeO/pEUG98ep2Ofn16xm8fN9Qlsz9MeD2Wv1TZwGvlHpIKZWhlGoIXAb8pJQaXFfn07Sjnd3l5Ym5W3nkp+ygQv6anSE//X3effphvN7AKp9mi5UH3/iQrGYteeneISz+5YeA2mv1j77QSdOOEJvF4N6eaeRW+GryJUGG/AWt4vhx+ge898yIgEM+IiqGh976iAYtWvPyfUN1yNdSWbHB+r8tlBUfODJre9yRctBRiEiyiEwUkW/9n7cWkesDOYlSao5S6uxgB6lpx4r2KeE80jeD3AonjwYZ8le33x3ywczkwyOjeejNyTRs2YaC3K0BtT0eLfjWxu1npvDkzYncfmYKC76zHdJxR1Jtfs28h29p5M47G6wF7qyrAWnase6EGiH/1drigNvXDPnZMz7k3aeCC/mREz/ltMv+B0BVRXnA4zgelBUbjB8di9NhYK8wcDoMxj8W+/9m6LU97kirzdkTlFLT8C91VEq5gcB2U9I0bQ8npITz3CkNuLxtQlDt9wj5T4ILebPFt/vIhn+WceegniyaMyuosRzL8nNMmCx7Pmcy+54P5rgjrTYBX+nfokABiEh3oLROR6Vpx4GGsaGYDKGwysWTc7dSYg+uXHOhP+TfeXJ4wCEPkJLZiOTMhrxy/8065PeSmObB49rzOY/b93wwxx1ptQn4u4GZQBMRmQ+8j29/Gk3TDoMdlS6Wbq9kxE9bggr5q9onclHreH76dHJQIR8WGcVDb0ymUcu2vHL/Tfz583cBtT+WRcV6GTKyGGuIF1u4F2uI7/OoWG9Qxx1pcqD1tCJiAN2BP4AWgABrlFKu/TY6BE3jberF0xrWRdeadlRbsaOSx3/ZSlK4hTEnZRFjC+yaEKUUHy4vYMY/hQw4/wquf/ipgG/EXVVextPDBrNx9QpGTvyUpu06BtT+v1RWbJCfYyIxzVMnoVrb/ut6HPtyRafMxUqpzvt67YABDyAiC5VSPepkZHvRAa8dz3aGfKI/5GODCPnJKwqY/rcv5K8bMQZ3WCFew4FgYHJFYnZGI+x5FazbXIHbWoISD9WlDma/O5Ozh14NNgcKL4YnBGt1IsJ/W0/enwXf2hg/OhaTBTwuGDKymJ6n2//rYR0xBwr42vwEfS8iFwKfqmA3p9Y07aDaJYfzaP9M3l+WjymIxRciwpXtEvCGWvnks4+oDt/MFU8PxewNB/HishZjeK3YypsQUpGJy7aDqqj1uK2lWKvjUcqEN7qEvmMaUa4WUrlZ2LYyh9antKTMsghbeUNs5U0wef775X871Vy9gsP33PjHYmnbzfGfl0eOBrUJ+LuBcMAtItX4yjRKKRVVpyPTtONQ26Qwnjk5CxHB5VFUuTxEB7CFR3WzNPo+dTWOe6by1YfzCanI5IYRz2AYBgqF07adqui1VFQLb0wAACAASURBVMb8DV4zEaWtCKlKR4mH0qQFGB4b4SWtcFsq+fCZESz5dBG3PfUWnU7rhz1qPcWpPxGd1wOLM64Ovwu1t2v1imP3cztXr+iAr8WbrEqpSKWUoZSyKqWi/J/rcNe0OrJzI7FXf89l+OwtFNfyjVdHRjx5N5xK8qSfuMHq4JI28cz5fApvj3kAr9eLIITYUzE5o1CAyWMjpDIDgNKkBZidMcTs6E1oVSa2iiyueWA0mR2zeO2hm1k8ay6RRR2ILOxISfIC3JayWn89XsOBM6QAZ2geLmsJKqDbSRzY0bp65WhRmytZ++7rcSQGp2nHs9ObxlBQ5WLET1soqkXIF17Sh7jPf8O2ZhsiwhXtEnaH/OP34/X6yjTOsFzicgaCKKojtmCP2Ih4zYQXnYDTtp2SpHkUpc1GUvMYNvl+sjpl8dpDw/h1/kQs1YmEl7SkIm7ZQcfjDCmgNPF3CtNnURG7gsro1ZQl/EFhxndURq/GazgO2sfBHK2rV44Wtfnb774aH4cCXYHFwEl1MiJN0wBokxTGo/0yGf1LNiNmb2HMwCzi9vPGqyMjHndcBBF/rN313M6QN5u9fPTFVAyvg4tevQpbWRNM3lDCSptTGbMKJW6MLR3IDf8Ta1Q5EZVNic7vQXmRheocEzdNNDP+2pf4cux7tLwwlZjCXlTGrMZtLsfsjvx/Y1EoKuKW47DlEFbWjMjCjhhe667XXdZi7JEbKEr7kej87lgc8f+vj0D0PN1O226OI756pT44aMArpQbV/FxEMoFn62xEmqbt0iYpjJH9M3lsTjZP/7qVZ05psM+94Mt7tiJi4Wrc8b7qqam8CqPaRXpaGZPOLKHRJ/DEF59TFZHDLff5du222lMoi1+Ms9LMmnVbUZ5QPrrlHK5/qAwUu1amtDy5H4PfEJKrTsBsL6Ek6VdCKlOpjtxEWGkzvCYnokwY7lDAoCJuGW5rCXG5A/cI9p0szlhMRe2pDo+jJGk+0Xk9sDoS8RpO/4ofwfCEgjLhNVWjDBfiNWF4bMh+ig5RsV4d7PsQzAbsW4G2h3sgmqbtW+tEX8hbDPl/4a6A6qapVHZsjAq1UNmlGQCeCBvha7NpVzULU0kuYy4BV2g4z378B7bye7l+5KsYJhM4bBTlQXhcNa8PuhCPy8S4UbEg4HIYiFNhWNxEZNlxWv7AUW1i0o3j6XBeezqc2xF75AYMTyhKvChxY7En4g4tIi7n5P8X7gqFO6SIqsj1OMNyEY8VpaAkZS7itaLEg8kTihcvyuRAlG9ZpuENQYkHUIRWNMRW3giTJ+xIfOvrvYMGvIi8xu6bbBtAB+DgBThN0w6b1om7A23WuhI6p4UTG20j/5qTcKXGYlQ7iZs8h/CVWwDwhljw9GvIvAHns7y6iDOWTuLeK6NZm9KBz1+ZiUdCGPLoc7hdBtEp5Xwxoi8elz9QDUDAFuXgf5O+IjKpCq/boHzOuSQ3zqV0+/O8f+P74LHQ8ZwumB2xRBWciNdcTUnSPLyGE3vERsLKmu9ac19aoqhIXIw1roDwyiZEFnVAiZfSpPm4jTIs1XF4LFWI10DM1ViqEzE8oThsO7Dak4koao/HUu4v7cwmorgttopGR/zfob6pzWrbRfhq7ouBhcAD+sYdmvbfKKxy8c5feYz4KZu1F/RE3B7Sn5yOdWsh3vDQXccZDhfhc1Zxya/PE+asYOaJQ7C67Jz20Jlc2SGOuV9OZ/zoexFrFSarh1WzG+xq6/WC2ergpk8+Y8faOD669RRKc8OJz6yguvEi7hn7Oo1ObMr7N01k/SQXSjyUJf4BXgOvyUFszgCqI7ZQFb0GgAXfhbAo9y/W/SM81PIqlk47AYCS5LlY7amEl7TGUFYi8zvjtpaBMhGd352ows7E55yC21JGefwSTK5IIos6EJvbn8ro1dgjNh7Zb349VJuAj1FKTfI/Jiul5ovIHXU+Mk3T/p/4MAuj+mdQ5PTywq3TMY2dhXi8hP+1gYruLfY41uk0s+KvJPovnYrFWc3fad2w7ijhrEu7cnm7BOZ+OYMp976LiIeErIpdq1CGPZLNix+MpmRLBD+M6sjAYYtIDduGs/V3eA0n7gb/cuO062jYuTGvP3Q7qz8uwGtyUBW9FrMrCos7mpgdvamKXEehbTnJF35G29M20rjnNkavnoA9cyGF0b9jqU4koqQ1hieUalsuJWk/AQqvuZKCzK+pjP4HJR6i83rgCinCEZYDgNkdScyO3lTErsRjrvwP/hXqj9oE/DX7eO7awzwOTdNqqWVSOLdMupayvDJG/LiZwioX4cs24kqOQWVFERNtx2r1LavMyY1m9uzGhE5bwpKUPoT8tIayfm25rG0C513akT+m/M6026Yz4sv5DB+bz6vfbOfUgctQXSMZbr2HN34eRYfz19GYtZjcJkKWXUDl/JMItUVx88e302pgKyxZDkqXtsMemgPKFymu0HyU4cIZkYPLbuaNcy/ggcxbeLjZELL/SsEblUe1uZCc8HmUR68EFCZXJCHLLqTi57NQHvCY7RSl/YArfCVJeaE4Ilbv+h6Y3ZGEVmTtmsUfbXdSOlrs97shIpeLyJdAIxGZWePxM1B45IaoaVpN9taZNG2exKi+6ZRUe/g73454vGQtXED5zf3o1DufkweuJy3Vt6u302nGsbYKS14peLx4osPIv7wPA5+5mAvObsUf0xfw4eOPkd4hm6hYLwWxVpJLslnRpT/VWXG03vo7Vo+DgiXNeGhwLJUpi1j0SWPseQ0YeOos3DFprFiXz5rf86lyVWGP2ERF7N/E7OiNKaQat9PEuvm+C6ocFVaUUhT/3ZDiYg/u0CI+uLUfHpdB7sJW3HFmKk9c25hVv6SzeVEq7VZ7MFvnk+qYjsnYQmL157u+D7byxtgjN7FglvWou5PS0WK/m42JSAOgEfAU8GCNl8qB5f4bfxxWerMxTdtNCVQ3T6esbxscjZLxWi0YDhdGhZ2Q7AISPpxDucNNeGw49l7NcPVrQHlUCl4xiKguIbKqiDxJxhMWAm4v4lXg9aJCLahQKzg9hG7IZeYXK/nm2Vl0uaQrQ0Y9hyesBDMbcYdWkFiaw1lLJvFuz6eYNPwkBty2mGUzm9LipC3Yi0NIal5MWLSDFd8t5ONhk7nizavofFFHUCYMr8VX0nGasJebsIR4sZdZiYhz4VUeTGYvSoFhUng9Bm+ceyGb/kwFoO+QpSQ3L+KViGuIji9hao87ibQX0WrrEtaEj8Vh9q2dz0/9jmcGXEDO6t1bJ1hDvLz6zfbjZtlkUJuNKaU2A5uBI7KTpKZpuzlTYsm74RTwKqLmriR++nyMaheeMCsFgwdQ1a4hOfedj23NNrb2acPWj+cyc+BrfP6QlcWnDCU/Oh27NQKPMhGyKht3UgzuhCjfEhmliPp+Cc70BBzN0jj1nlRQ8M1zs8D7AJe/eSmGSQipykTZmzK149lUh63nzBHz+f7FrrQ7YwOZ7fOY83onvnqsD4iXweMUDbsuYPLN7yOi6DPwCuyRGwGF2eohKsJG9bZUYhutRykFJg9r52Tw5Zie3PPDNJRSDJn2OQvfa8dXo3vhqLQQGuFiY0ETekb+Qtf1P/B709Nwmm2Eu7J3BbzbYSE0as+9CvReNLvVZquC7iLyp4hUiIhTRDwiUvuNKDRNC4gzLY7cOwYR/eMy0p+cTtS8VZhLKjGqnViKKrCt2UbEb6sxHG5KB7Yn6Y2vSflpKdu2O+n/pAn3xs0M/XE4A5d9jG3dNqrbNsQTFYY1u4DIBf+Q9tynVHZtQcSS9WSMnkLEb2s49f7TOPOhM/hzxm98dMsUvC4DJVZ2JHqoCrNjuGzMuHsg3S7/h7Q2BXw1uiffPtUTj0e4ccpMfp3Yi2sm3kyjrk348KYP+HX2ZMLKmmJ4Q7HYkwnxmAlpsobE3NYYjki2Lk2iYFMMt3zyOdv+TsBVbWbilefQoPN2LnvtB8Li7FSVhtAoYT0AzXOWUBkShRKotGQCvnX1plAHlUV7rrfXe9HsVpt3JF4HLgf+BWzADcBrdTkoTTteKbPBjpvOIH7GAiJ/W4MrJZbCi3ux7f4L2PrIpeTcdz7OpGgqurfEHR1GzNeLKLqsL41jIrn/ydMoLajisctnsCUP1hZkYG+YilTYUWYTzox4XAnRFFzaB3F7KLiyH/mD++ONsGEuKufUe07hrOFnsGjG70y+dRJuqcJrqsZjsmOIwTXvfkta2wIMs5fGPbZx+eiV3PXVF/zwfDeWfdKasFgrN350E417NGbyLZPZXPoLXqMaT0guFmMdPdZ8gyt2NqGUkJjpJCq5CpfdQmWhDYtFuOGhObw/+FTSW+bT94ZldEgoZEOLB3FLKNXmaAA2RZ23e/YeUoRJTFx8nUfvRbMftbqSVSm1TkRMSikP8K6ILDhYGxEJBeYCIf7zzFBKjTyk0WraMa6yYxPMeSWErssl99azcaXFErlgNfHT5mE4XHhtIVS2b4g3PASjvIrIef9Q2bkpVe0aEH3JSTy2cD0jv95Mr+fDeeDNLEKqnSRN/J78wQPwJMdQnRGPyekm8peVlA1sT3WzNMTlwZJfSvhvazjlnlNBhK+f+AbxTuC65+/BGbUdUBjiZeuKBKbcdjKprYo45e4/sUZXctntpZz/6EeYrF4sFiu3ThzF+h+3kdDABqLwmhRewyC9+F/WpHfEG1JJaBi07xZF6aJTaTHwSwxlENNpHWufacqfhQPY0KEbQ/6+nW/CFzCz6W84I1Yi7gpKbK2wlfu+V1WRG7CVN6bn6dW07bZd70WzD7UJ+CoRsQJLReRZIBff/vAH4wBOUkpViIgFmCci3yqlfjuE8WraMa2sTxsifltD7r3nkrhoBZETZ+KyG1itbsJsLqoKLYjbQ3nX5nijwsi95zwi56+i5OwuhK7KJnzoqdx1VgnLX5xFlChC5v5N3qUD8IRFYJRWk/zu97jSYim8uA/euXkYXcxkPDaZ4gt7UtG9BRE/LuOUm/shTjdfPfc9yniaq166BVdlOOX2SmJSKul9w3Km3nEyXS9fTYwpCRovwfAIVMZCeDHxzhNJ7tOAfPUX/879l9K8Yk68qDMzut5GmL0Uj2EmrMJGtcUJHgtGeTISsZ3oqkL+PbEblfFpRDjKyE5sSbgrm/zIZhQnVGByRSJeM2XFBkXOfMLSdxBZ1B44vHvR7Ou2e//FrfgOh9oE/FX4Sjm3AncBmcCFB2vkv/tThf9Ti/+h7wilafvhDg/B0SARd3osEe5SQk6IJqphU6IXrqRlfDbKK4ih+DL8BKL+WIsSoaJLMypPbIIzNY7I0nxCUiyMyJmB5V4X49tlsLEyGldhKDmz21JVGkL3foqQ1qEUb4kiuoeJkjwbxW3OJb61jehZS6g8sSmYTZxy+0koq5mvn/gGvGO54pX/UbAqkayOO+hyyWpSW+aTdWI+ymnG7QIxFG5TGVYFMa4fyE0r47RlM3n7zRJW/rSOld825sJnM8jJjyetVRF2LzhcpUjXLykoNxMdatD378+Y1ut2Yirzabf5V7bGN6bEiKM4eS620mZUxaxh+ax0fv7ezsUv/cabF5/FqaeHHdbb8+3r9n81N16rb7cEPOg9WQFExAZkKaXWBNS5iAnfFgdNgTeUUg8c6Hi9TFI7HikRSs7oRGn/tqhQK9H2IgasmoHbsLA1vhmr0zqTXrSe/v98QoSjlLnNzyF7VSgR3y6n5LSOlJzdFQRMHieX/PYqUfYiiiOSmNLlNl4Y+DLF2V563/AyA+/cgbPSQsm2CL56vDc9rl5B8/7ZhIS7sOYUkfjpXHYMOR0VagEgcs5KZs5Zzxev/0KnCztx+avXsOSTFrQ+bTMRCbsD7p/vszDM0LxfNoZJIcrLKSs+onXOIt7s9CCPn/8N21evpPOl93PlmykAeJzCZ4/0of1Z62nWZxsAIpBRsBa3OYTCiGQ8EopXzEQUt0OJhyrbZjb9YyMyqZJJ15/J5sUph3VJZFmxwe1npvhu/+dnCfGCApdz93NH2zLMQ7onq4gMAp4HrPgueuoAjFZKnXOwtv6afQcRiQE+E5G2SqmVe/U/BBgCkBgWzOaWmlZ/KUPI+9/JeMNDSX3lS3IeuIjOa2bRoMA3l2qSt5Iea77mr8YDmNbjDi744w3MLiemsDAEiJ31F8pkpvTMTiDCJ91uBSDCUYohBq0G3Mvct4ezYNJteJxvMGBYAd8/0Zk1Pzdgx9pYRiyehMcpePI9bL99EFG/r6KsS0uMahcVLRvQ/4TmUO3li7d/RXkNBo+9HJPZBF7fRavOKhOtT92C8mdd2XYbsQnlzGt5Lsll2Ri2CE6762FmDH+JxdOfwRxyL5e+lI6jwsr5Y+ahlMLtNOFxC1azma0JzRGvIF4zCgNDCRVxy0E8eEpj+eWtE1k6szFejy9wD7QkMtCyyr5u/2fsYxlKfVqGWZtVNKPw3eSjBEAptRRoGMhJlFIlwBzg9H28Nl4p1Vkp1TkqgHtPatqxoOi87nhtVlLe/BpzXikYQpSjaI9jLB4n3dbNovOG2XzReSjxlTmUNmm4+/VC3xWraYXrufnHh7j5x4cY/OvTCF763mJj8Li7cZRXsPiTm6gozOffX3zLDCuLbIihKM6OJKSNjRZbF2FqGw8mA3ue4EmKodQRR2SnBzn74bP567NFzLh+POFleTTPXYQAM+49ia3LE/C4TKya3QBbjJMTVv6CQvi06zBcNgsNupVz9+wrsYb1YvXsjaDgya7XUJ4Xhtth4Zdx7Vn6WQvCVg0ifuvpiArF8IQTUdKW2NyTMLsiCCttQfjGk1n5ze5wh/0viVzwrS3gq1v3dfs/rxe8e3Vfn5Zh1ibg3Uqp0kA7FpFE/8x9Z4nnZGD1gVtp2vHDExFKRY+WJL37I+L2omwhiMPFP1n7vrbwhC3zia3Io9oSjjsyDEdWIgDlXZoDsDW6MVWEsCb+BD7ucQ/KMBGVUMn6OefS44rnqC6v5NunpvPSrCdJbpBHz0uW4aw0k5KSxwlb59N9w3eUhfnvrpQUxsIP2lCSG0nbszcy8O6TGTTybBZ+tYavrn6ZDbHNAMUVr//IhgWZzHq6J/ENylAVEdjCqum7+gvslnAsXhdxyaWs/qE14v2Oi567HIUw/NcPqSwKJWdFIgOG/UWLEzxExNsxecIJK2mJO6QEV0ghRWk/EFKVQXhJm1rfnq+s2GD86FicDgN7hYHTYTD+sdiD7lOzr/6Hjixm6Kj6e0vA2kyZV4rIFYBJRJoBtwMHXSYJpAKT/HV4A5imlPoq+KFq2rGlvEdLwpZtxFTpqwmIy42g2JTUhjWmtpStDaVh4iYSIgt2tWm/ZR7zmp9N4oJlFA/qQtTs5bjS40CBZWsRHzYehjsphqSpc+C6VCy4efGc2/k7vScX9e8PHVrTrmoJo+ePw+MysBhOqsKiSFuznmk97sIrAgo8boMZ9w1AeQ1aDNjEDR99ycDbByIifDHqS7bc9hmDxw3GYpg4o79B1bpSaFZCdGkEyxv04ZxFY7G67CjDALNBr+tW0POafxCTh9LcUt4863nOvngo7c5qgeEII7VJFQVh3/q+SPHNjhUQl3PyHjf3qM3t+fZVatlZVtn5+v7a7q//+npLwNrM4G8D2uD7dn0ElAJ3HqyRUmq5UqqjUuoEpVRbpdToQxuqph1bKjs2JuK33esWjGonRrUL44c8pp1wO1fNnEKDOzYzZcGlu47JKliDPSSCkKWb8YSHsuOm04mavQyjwo7hcGFvmkH4wrVYlucgAq03L2BBzwuQRBM3hPyMKTmBSo+J9x+cSV5xFdW2CATFrPZXosSgx5qvQaA8Lxzl9cVDRHw1rioLxtQculx+Jmc8dD5/fb6UD4Z8SOqWSlTjOZyfOIwQdwWhriKa5yxhWo+7aL3tN0xeN1n5q7HaoxCTIqy4DRHhCWTE23jnhREsXf4xVywaSdv1OSRsOYfQiixMzhjCSptj8lr3eeemqFgvTdq49hu0+yq1eNywaZWlVmWbffV/sHMerQ60m+QH/g9vVEo9rJTq4n+MUEpVH6HxadoxyxNpw1xcsetzUWCZs5Gf8s9gxgP9uXrKjwx6ZiEPL3iO/LIE/1EKq9NO3nl9cMVFErIln9IzTiRkcx7VLTNIfOdHKjs0JvfOc1GGwYqs3iSUbaM0JIb3+j2Ky7Ayh5YsnbmC1899k/ytpXgNM9WWcHqt+JxKaxR4vMRllhOZ5Ntrvdf1y3FUWnj+zTt4fdAldL/6dM557ByWfrGUlx6cwIClH/H1iVfhMofiCtnB8sx+pBdtYFVGD1wmK7kxrXCFVGOujsUesxqbNZS73+1Hq96NmHTnp3w+aweRxhRKU37AY6kgdkcfTO4IvIZjH9+1g9tXqWXwvSV88EJMwGWb+u5AJZoT/TtKXici7wN73AxSKVW072aadnzadTGS3YLTefDqp3i8YNozYMq/q6L9U+uZ/VpXnu45mO5X/c21H37HjKi7CKcChzmUaksY8YXLSfvwe4zUMNbdcDGesFAQofCyPhh2J84GiSCC12Jhhy0VMZlxexXicpPcMo17Pr6S5674mNfOfZNbvxhGYloUv0f2piolCeWB7atiOeWuP1k5qxGxGeXYi62YLG52rIxj4XvtOPkuB26nwTdPfM4VIa0YPF7ABKURyaDM5ER3RBkOPCYPGCBeEx5zFUo8uCwVFKU15/Z34njtuqncOG4z97cJp0t0BA5vTwRBiZfaFRj2be9Sy4HKNvVtVh6IA/0UjgW+AxrjW8teM+CV/3lN04C01FI6dNi+62KkpUtTyMmNPmAbS14pjqxE3z7tfkmuTbz9xD0Mnf45b11wPj+80JU136XxwatDMUcqLG4HfzY5hWaLfyXrVCdfdr2EU1d+yKLQbri+20Z571ZEzv2byN9Ws/22swlRdiqyMjhpyUc0yVvB6uWxlFzSg1VdujP6nTMYef03vHHuG9zzygV4+7TBvL0Yb4IFe7mFEy9eTY9rV/DDC13IbJ9HevtCktqU023wP2z5K4m2p11Ag7xVvDVhFcaN73HH8yfTKed3lse+jsMSCUooSp2NyROOtSqZ6qiNhFQ0ID4/g7PWD8RhtXL2rcKTESbuss5hvvMZxOyLGbe1GLMr6pD+Tfa+unVfZZv6shomWAe90ElE3lJK3XwkBqMvdNLqI6vVzckD12M27f5/ye0Rfpzd5IAz+cr2jSg96QTSXvpij74KwzrzjrqbUx5YRFVxCPGJhTQvWYHZ5SAvJpOCiFSiq4uxh0Rw0t/TaZG7hBldhiHT/0YVOdl+8xmErsvFUm2ntHcbTlo5nQUtB9F822JCq8tZntANW4gLhyWMTStyGHfzp1z35hVkZcXgTo4FjxdlMuF2GnhcJtwOEyERTkyGh9Id4bw/+FSGzPwaU3EF8aZ8fpj+F1PGzKbjoHY8de91FEVehMJLefwSqsOywfDNxs3VcRjKgiu0gLgSNyevepm4igIM5eL31OdZbzudfxYtpF3vnhSmf0f8tlMxvKH7/f4FasF3NsY/FovJ7Av3+nRF6oEc0oVORyrcNa2+CrO5UF6BGgGvvEKYzXXAgA9bsYnCi3vhbplIQu4WquwWwmwuTuo2nfiWwiZa0zA0n2JLCjkqFRMuysJTMdweIquKcJstlPqXNYpShIR48OYUkf7kdCp6tKTk9I4oMbEysweRVYWszOqBwsBcUkH5NjeuSDOJnVvx0G8PYvZ48QBVZXZsUTa8Xt86+fz10aS0LEYExAKxaRXc/ulUJMKCYfISOnUVV23Lhlt7M+X1eTyg3ue6NyPB5kQZTlAmzM4YDLeN6PweCILXcGCP2MT0bveSsj0OU3UrHOZ4vhz/Mp+Me5GrnrqLHlf0OqzhDrVbgXOs0VcWadohqrJbEGPPv4TFUFTZLQdsJ15F81nfsvnG0+i5cBwJlVtYuTKJ31udTmlCMv/740lC3HbsRgg7IrNY8H/t3Xd4VVXWx/Hvui29ASEJIaELjPgKAgJBFIIF7OPoDBbUsSuioIwzKqgoyCAooqiAYB17QRE7TVEEpUlHaSb00NJ79vvHvYmJUnIOXG7K+jxPHtPO3ouL+XGyzj77tL+I5H0baPq/z+jUfjsFIZF8ePodeEoKiSjYz96GcYSTgTO/iKi5K8nu2Y52e5ezNb4DvdbNoOn+zbgK8hg1bygfbb2J0nwYMOUbwjiAaSTMeW4+30/9lkEf38m7993ANdPn8tvSBD68vzf7NoQyaezN5F3TGYnxELx6K559OYQt20RGvy706tya0B838dKs5bxspnDti9cSZBoRtScFgAMJ88mLWk9oZjscZUGEZbUlKD+eXQkLiMgoJqgALrz2VtatXsDr90/AU9CQ1ItPP+5/V8dzU7LaoG5fQlbqBCgqcrFiRTwlpUJxsYOSUmHFivijXmj1eEpIDV/IWetmMDPlNpa16UvDM0JYldiT83+chiO/kMIyJ7/Ftmdhh0tomLebi1ZMp2O77QgQVpjFJUum8kOb/rTcuZKDPTpgKl0pK4mJIOKdxXT95UsWtLuU9XGdmL+kA+NeeYQ1c9pQTAiFuR7Kor0XaNt1a05BfjGTLn+Bs4LGMvXSC+j8t/X0vmUZ/xo0GlezYBzFJUhJCQUnJ+PMyGTPTeeS16kl8ZM+5eI20Vw5sAsrPv2J1258nfDt3XAYNw7jJnr3GRSGbScrdjHFQfswGFzFUURmdCW74XKK3QcpSFzLDW9eR4eUFKaPHM78j972719cPVCtzcZOFO3Bq9riUCtmrK6iiY7Kp0f3dNzuMvaGx7Oi+Vmsb9IFZ2YuoZt34AoTMpsmEVu4i5YbfqZ0eT4tYrcSE+p95r3L5f3Z/eqUq4jK3M2KBt2J/HgJYat+A2DrUzeSfP+rBJsCTJsG7Dy9M1ntWrF+YQuy94bRNjWN4PAinJ5SHNuzaPH07tmuiAAAHnhJREFU26xuGseYyYsICnYzdMxlRCfEQ8swymLCcGbl4tmyh5KG4RQnxYIB156DBKXvBYdQ0DIeE+Rm4cMzeHv6Irqm9mfwmOdwud3efWF2lxHTYSMmbqOvdeO9CF0YugMxTkKzWhGS3YqSfMNT99zE5nUreeqjbwmPjPbHX2GdcUw9eKVUVYdbMVNU5KpWsJer3NpplLOL1NXvsjHuFJJ+XEhyfCbO3GIaLf2Ir2f3ode0L/A4iygq9fDijTcwoMe7FeP8X9r3fPl/V9Po1e/YMfA8XM99StC2fTgP5lLcOBpH+l5Yk0WjNfNwutfxU+aznPb3zRQXuJg1MoW+dy+lScRBsvqcQocFaxn09s1Mvuw5Xrj/Ld548wxi0w6SM20Pv4WeRH7LeAraNSVkbRqujExCNuygLDQIKS4hfOF6Mq7vyz+Ksgk/rTHT5n7Os/+5gy59Xmb66Ma+7XabcMvDHehyyTbKXHkYDI7SIEpduYRl/gUATxDc89Q0Mrana7gfIw14pSzweEro2HGXd8WM76Jqx4672LsvzFK4w++tnfJ/LAqCQiktdXJeyde4dnrHzshqxM3TppNfFEo+3rs6b3zxZRqb1fRJWYspE2IObCczpCHRa3fT6N3v2HXnhUR/sZSw5ZvJ7tmeoLcXVMwZFlvE3y6dycGGyUy98Hxap+4kYls6ifNmsvPOC8g+vQ3JYcHcOfN2Dqzawo4W7fk1OIqI5vvI31xAzknJNH55NsbtJKdrG8JWbq0YO791Au7dB3CUlHJR2wYATJv3BUu+uR1T9g4Uep+dOnVkAzp0K6rohRcXR5HdaEnV1zkomMSWbQD4aNozRDWMpc9fr7T0+ioNeKWqOFqbxe6KmcPZsTOKzKxgYqLz2VPSEHqaKuNvzWiO21lUEe4ATilh5eb2lOYXEhpSTG6BB9NfQCBs+WZce7PIPLsjeScnYdwupLgUjKGwWWNKGkaQuHAtTd/7gvs6fExk5yAcIeE4s/IJSt9LbpfWSEkJHZMgIcqBI2Md85fns+PUzsSe1AhnfiGe7fsoTGqE+cNNWjgdSOnvr8tFbRuwN68JH63/CPgH8A7g+dMNRmIEw6EvfJaWlLDh5yX8/P08jDGkXnaV5de4PtOAV8qnOjcr2V0xU505y1x7+TXITbHHg9u3G0jz2K0Ul3qqHFNS5qJx2PaKllBxgwgcuYWIr6yg9L00fnk2JZGh7L2mN3n/15zwheuImvMzoavTkDJvmEY3zCC3oDmZDRLIGNibgjZNCF63jaSXZ9FqQDA54Q3JK4JnHvwed+lcHj0rGdeF3dk55GLCf1iPM7vqGnJndj4lDcIx/H5X5GXtQ/hkw5OUmnspD/nSEleVG4xKXXk4Sg+9JNLpcjF0/FQmDLuFaaO8zwvSkK8+XUWjFFVbL253GS6noWPHXXg8JVW+z+6KmerMGSQltMhYwzzpUzF+TNg+Hjz7XjzOfELd2Xic+Qzu9iBRwQcqxsnp0ZbwpRv/NL4rK4+4Fz4j+Ncd5J3aAmdOgXeD80pC1m2jsGUceac0x7Uvm7jpX1GS7yD7iwxO3Tif7lu/4bO7i8jJg/u+3E7+jJ8IXb6ZrL6nErZ0U5Wx3Dv2I6VlFLROqPhcVPABhvTYhlOeBD5CHFdw44O7qyxVLAjfSnBu08O/TkHBDB0/lY5npDJt1L+Z88EbVl/qekvP4JXiyK2X8q+Xt2127Ixi774wSytmqjtnhy0L+bLjP/h67EbCgovIy3dzStR8pl3clz25iTQO214l3MtcTrJ7tif+mUPvxC0GGv1vPtm9/kLGwD44iooJXb4ZZ24hZUFu8k9OArcT556DJDz7CVLiDd7KraODB0MY2dswYm46D85JY3irjcjZHXHv2Fd1LiDi2zVkndWBkI07Kz5/ZrPPOTUuhhnrOjJj/Ux+nJNPj/Mm43J7KHXmURScQcTerkd8rcpDfuJ9t+F0aWxVl75SSnH41ktkZAEpKWnHvGLmcHM6nFXPqJse/AVHVj67LuxFgw8WVrQ6ooIPVAl28D7Lde81vQn+dQeeXVW/VuXPAUQuWEvEd2spaNuU/LaJFEWHIYXFhKxOozgumrLQYPJPSiR0bTrw53ZV1Ip4RpHEiPnb+LzQyWW/bie3R3uiv1xWZa6IxRvI6nMKWSntiVy4ruLzUcEHuL4TxIbFMfWbr5l4320MHjeJnIRFhGadhMMc/bV0e4K4d8JLiHhflQMZu4iJjT/qcfWZtmiU4tCtl9WrY+nQYc9R2zbHkwBNXv6cgtYJ7L2mNyWRh96zvCQmnD03nUtpZCiN/je/emMbCFm/jQYfL6bR2wtoOGMRzux8gjdsJ27ql2Rcm0pWr7/gCin7U7vq1I67aNojiWFf3MWVXZsQ8d06ChIb/GkOR0Ex8c9/xsHzO3Pg/M6UBVW9NnHBSTHc2iWOpd98zZMjBkBOKKGZbav/+vjCfdOaFQy9pBez33/9KEfUb3oGr5TPH1svx3vFzB+FhhRTVurA6fj9LL6s1EEEOSQ8/TH7/9qD7SMGELI2zXtxtLCYshAPeR1bUNAygYgf1hMz68eKtsrhHGllkPG4cBSVELxlNwkTZ7Lvbz3JvLAzC3cuIiEnDTFlZAfHsCaxOzndQ2j1yVLCl2xkS5NYnh36AcOah9AkoupFYPeeTJqMn8G+y1NIf+xqwpZsJHjTTqS4lNLIEDoOPYkrPl/Lew9/wks3TmHIuNNwuauOcTTJbdpzctczeOnxBzDGcM4V11o6vr7QgFeqkj+2Xo7nipk/OtKKHEdRCY3eXkDMx4vJ6XYSeR2SKQty4ygoJmRVGrEvz8FRdPTfJI62MsiRX0hpuPe3BM/OAyRMmgWJ4fD3BH5J6ESZOAkpyqHnuo9Z/24pxYXe1ybf5WJ3+gEe3JTB6L7Jfwp518Fc4qZ9TUlUGNkp7cg7tQXG7cKRV0jU3JVc/ctvNOwSx+RvZzNh2K0MGTcZtyeo2q+d2xPEkHGTmXjfbbw85kEADflD0K0KlDoCO/u815Txq7ONcWlECNseGkDTh97AmV9U7bp2DbqA/TOXMGbid7gcwqjUZBIjrZ2FA3z+6wEmL9lNp15nWw55gOKiQibedxvLvp3Ng1Pe4eSuKZZrqO10qwKlbDpeK2YCMX51WkzO7HxC1qSR070tUfNWVauu4tgoCpMa0W7nXkalJjNibhoPzk1jTN9kEiKshXz/NjEATF4wm6eH3cqQ8VNsnMlPYd6Mt2jfubuluesDvciq1FEUFbk4mBly3MPd3+NX96asqLkryTy3E8WNq/7mcKi6jMvB3ivPJHL+KhwlpTSLDuKx1GRaxwQRGeS0VWf/NjHc3jWO5d/N4elht1JcZO1ZrC63h3P+fh0Oh4OMHel8M/Pdox9UT2jAK1VHVfemrKC0DGJmLmbnXRdRmNToMKNBaYiH3bf2x5FbQPSXyys+3yw6iOFnJRHmcVJYUsaunKLDjnE4/Vr/HvITht1iOeTLzXp1MlMeuZev3nnF1vF1jbZolKrDqtsCivhhA46CYnbdcT6e7fuJXLAGT3oGUlpGSYMIsnu0I69TS8IXbaDBjB+Qw1y7m/TjLlbtyWNUahJNI6310/u1jkEQnv9uLhOG3cKQcVPwBFl7qtPAYQ+zP2MXr4wdgTFw3oDrLR1f1/jtIquIJAGvAfFAGTDVGDPxSMfoRVZVE1nd5702My4HuZ1akZ3SjuJGkeB04MzOJ2zZZiIWrvvT/jN/lJZZyPA5aTgERvVNthzyAF9uPMjzP+3i1J59GDp+quWQLyku4pn/3MGSeV9y3X2Pct6Af1quoTY50kVWfwZ8ApBgjFkmIhHAUuBSY8zawx2jAa9qGn+voqmLjkfIf7XxIM8dh5Dfv2cXj7w0A5f7+CxtrYmOFPB+68EbY3YaY5b53s8G1gGJ/ppPqeOtuhuQqaqSo4IY1TeZMgPjvt9BmY2TyHNbRzOoazw/fz+PCffeTFFhgaXjXW4Pd/33eR54/k1cbjdlpaVHP6gOOiEXWUWkOdAJWHyIr90iIktEZElWgf7gqJqjYplhJZU3IFOHlxwVxOi+ydzTowkOkaMfcAjnto5m0Onx/Lxwvu2QD42IpKiwgLGDr+XzN6fbqqM283vAi0g48AEwxBiT9cevG2OmGmO6GGO6RAbX7f6mql2O997v9U1SVBDNooMwxvD+mn2kZ1pfGXNuq2ju9IX8U/fcZDnkARwOJ8GhYbw+/pF6F/J+DXgRceMN9zeMMR/6cy6ljrfjufd7fZZZWMonv+xn+Nw0WyF/TqtoBp8ez6pF39oKeZfbzeAxz9E1tb835N+YZrmG2spvAS/ebd+mA+uMMU/5ax6l/GnHzihmz2nFD4uSmD2nlV5gtSE62MXovskIMHxuGmk2Qv7sVtHc2TXumEP+9L7n8/qTI/n6vdcs11Ab+fMMvicwEEgVkRW+t/P9OJ9SfuHvO1nrg6aR3guvAgyfc+wh/+TQGykqOPKSzT9yud3c+fgk+vz1KtqeeuQHjNQV/lxF850xRowx/2eM6eh7+8xf8ymlarbykHc5xVarBnwhf3ocqxcv4Ml7brIV8jePGEvySe0xxrBhxU+26qgtdKsCpdQJ0zQyiBcuaEnP5EgAikqPvJf9oZzdMprBvpAfb+NMvtyirz5h5A2X8en/pto6vjbQgFdKnVBBLm/sLNmRw22zNttq1/T1hfyaH7+zHfJdU/vT7ZwLeeOpx/j09SmWj68NNOCVUgGREO6hzHh78r8dtBfyd50eXxHyhfnW2zWDRj3jDfkJo5j12mTLNdR0GvBKqYBIjPQwOjUZp0MYMddeyKe2jKoU8jfYCvk7Rz9L93Mu5K1nxrB9y0bLNdRkGvBKqYBJjPQwqlLI78uzfpdwasso7uoWz9qfvrcV8k6Xi0Gjn2X4lHdIbNHa8vw1mQa8UiqgEiM9jO6bTL820TQIsbcUNbVFpZAf8k9bIV/+RKhl386uMz15DXilVMA1ifBw1SmxiAg7sovYetD6lgSpLaK4u1s8a5cstBXy5X6c8ylvTBjFJ6+8YOv4mkQDXilVYxhjeOqHHYyYm87WA9ZDvk+LKIb4Qn7c3dfbCvmbR4wjpd8lvPXM48x85XnLx9ckGvBKqRpDRLi3RxPcDmHEPHsh39sX8uuWLWLc3ddTkJ9n6Xiny8Xtjz5NSr9LePuZMcx8+TnLNdQUGvBKqRolIcLbk3c7heFz09liO+TjWLdsEeOPMeT37d6Jvx6M5G8a8EqpGichwruE0uMS3lq119YYvZuXh/xi2yF/x2MTuf7fjyEi5GZn2qojkDTglVI1UkKEhzF9kxnSI8H2GL2bRzHUF/Lj7rrOcsg7nE5EhAMZu/j338/h45cm2a4lEDTglVI1Vly4h1C3k4KSMv67YJutds1ZzaO4p1s865f/aCvkAaIaxNL+tO68M2ksH01/1vLxgaIBr5Sq8bIKS/l1fwEj5qax2UbIn9k88phC3uF0cvujEzjj/Mt497kn+GjaM5ZrCAQNeKVUjdc4zM3ovskEuRw8NDeNzftthnx3b8g/MfhaCvJyLR3vcDq5beRT3pB/fhzfzHzXcg0nmga8UqpWiA/3/B7y82yGfLNI7u0ez4YVP/HEXdfZDvm/D7qPrqn9Lc9/omnAK6VqjfKQT4jw4HGJrTF6+UL+l5+X2D6Tv/TGwYSGR1CQn8eCWR/YquNE0IBXStUq8eEenjinGU0jgzDGkJFrfYOyXs0iuadbHL+sXGor5MvNfu81XnhoCB+++LSt4/1NA14pVeuIeM/e31+7jyFfbGGTjXaN90zeG/Jj7xxIfm6O5THOv/pmel14Oe+/8CQfTq15Ia8Br5Sqtc5sFkmo29uTtxPyZyRHMqx7HL+uWsYTg6+1HPIOp5NbHx7PmRddzvuTn+SDKRMs1+BPGvBKqVorLty7n3yo28GIuWlstBHyPSuF/FibIX/LQ+M586IrmP3+62Qd2Ge5Bn+RmrTHQuuGIeap85oHugylVC2zO6eI4XPTKCwxTLmoFSFu6+eu36dlMX7Rblqfchr/fvY1QsLCLR1fVlbGgT27aBjfBGNMRRvJ3646LWmpMabLob7mtzN4EXlJRPaIyGp/zaGUUvD7mfzgbgm2wh1+P5PfuGqZrZ68w+GoCPe3Jj7O+y88aauO48mfLZpXgH5+HF8ppSrEhXvomug96/4hPZtf91nfC74i5FcvZ+ydA8nLybY8hjGG7IP7+fDFp3nvhfEB3YnSbwFvjPkW2O+v8ZVS6lCKSw2v/byHh+el2w75f/WIY9OaFbZC3uFwcPND4+h9yT+Y8eJE3p/8ZMBCPuAXWUXkFhFZIiJLsgpKAl2OUqqWczuFkX2SCfc4bYd8SlIk/+oex+a1P9sO+ZtGPEHvSwcw48WJAVtdE/CAN8ZMNcZ0McZ0iQy298BdpZSqrHzvmvKQ/8VGyPdIiqgI+f8OusZeyA8fS9+/XUPTVidZnv94CHjAK6WUP8RWCvklO6zfxAS/h/yWdStth/yND46h+zkXArBt8y8ntF2jAa+UqrNiw9w8eV5zruzQCIDSMuvh+qeQz86yVcvmtSu5f8B5vPvcEycs5P25TPIt4AegrYhsE5Eb/TWXUkodTkSQ96lM27IKGfzZFjbstdeuua/HsYV883YdOPOiv/PxS5NOWMj7cxXNlcaYBGOM2xjT1Bgz3V9zKaXU0QQ5HZQawyPz022FfPemvpBfv8pWyJe3a/r89So+fmkS70wa6/eQ1xaNUqpeiA1zMyo1mcgg5zGF/L99IT9m0NW2Qz71squZ+fJzrPh+nuUaLM3n19GVUqoGKb/wGhnkXV1j5xmv3Xwhv3X9GsYMuprc7ExLxzscDm544HHufmIyHXv2sTy/pbn8OrpSStUwjUK9IZ+SFEFChMfWGN6Qb+wN+TvshXy3sy9ARNixdRMfTX/WL+0aDXilVL3TKNTNXd0TCHY5yCsutfX4v25NI/hPSmN+27DWVsiXWzDrfd597gnefmbMcQ95DXilVL02ZcluHpiTxnobPfnTE4895K+441+cfcVAPnn1heMe8hrwSql67dpTY4kJcfLIvHTWZeRZPr5KyN9+la12zT//M7oi5N+a+PhxC3kNeKVUvdYw1Lu6JibEySPzt9kO+ftT4kj7dT1jbr+KnKyDlo4XEf75n9Gcc8W1bFy9nOKiQss1HHJcfeCHUkrBvrxihs9NwyHCM/1b4HRYf2DHT9tz+O8Pe0hq3Zb7X3iT8MhoS8cbYyguLMATHEJRYQFuT9BRHxwSkAd+KKVUbVJ+Jj/8zKa2wh2ga2I49/doTPrGDbbP5D3BIRQV5DPm9qt48+lRx9Su0YBXSimfhqFuEiI8GGN4Zfke1tpo13RJDOf+lMakb1jN47ddRU7mActjuIOCadb2ZD59fSpvTHjMdshrwCul1B/kFpexeHsOI+dvsxfyTcK5v1ci2zZt4PHbr7Yc8iLCdfc9ynkD/sln/3vRdshrwCul1B+Ee5yM7ptMwxAXI+en2w75B1IaH1PIX/uvkRUhP2PaRMs1aMArpdQhNAhxMapvMg1D3Iycn86aPdZDvrMv5Ldv/oXHb7ferikP+ctuGUqPcy+2PL8GvFJKHUZ5yMeHe8grLrM1Rucm4dzfI5btm3+1HfKX33YPCc1aYozhp3lfVLtdowGvlFJH0CDExVPnNadrYjgAWYWllsfo3CScByqFfPZB6xdeAZbM+4IJ997M6+NHVivkNeCVUuooypdNLt6Wza2fbLLVrjmtSshfaSvku/TpR78rb+SLt6ZXK+Q14JVSqppOahhCA9+F19V2Qz4llh1bNvL4bQMsh7yIMHDYw/S/yhvyr41/5IjfrwGvlFLVFBPiYlRqMrFhbh61G/IJ4TyY0pgdWzfx+G0DyDqw39LxIsI19z5M/6tvYvZ7rx3xezXglVLKgpgQF6NTk2nsC/ldOUWWx+iUEFYR8mNuv9JeyN/zEKPf+OyI36cBr5RSFkX7zuQHnhpLXJjb1hgVIf+b/TP55Dbtj/g9GvBKKWVDdIiLi9o2QETYerCAVbtzLY/RKSGM4T0aszNts62QPxoNeKWUOkYvLt3Do99sY6WNkO9YKeRH3/qP4xryfg14EeknIhtEZKOI/MefcymlVKD8q2cT4sPdPPbNNlbushnyKY3Zlb7FF/L7jktdfgt4EXECzwH9gb8AV4rIX/w1n1JKBUp0sIvHUpNJCPfw2Lc2Qz6+csgPOC4h788z+NOBjcaYzcaYIuBt4BI/zqeUUgETHezi0dQkEsI9zPrF3p2qHePDGJHSmN3btrLiu7nHXJPfnugkIpcD/YwxN/k+Hgh0M8bc+YfvuwW4xfdhW2CDXwqCRsBeP419Imj9gaX1B1Ztrt/ftTczxsQe6gsuP056qEei/OlfE2PMVGCqH+vwFiOy5HCPtaoNtP7A0voDqzbXH8ja/dmi2QYkVfq4KbDDj/MppZSqxJ8B/xPQRkRaiIgHGADM9ON8SimlKvFbi8YYUyIidwJfAk7gJWPMGn/NVw1+bwP5mdYfWFp/YNXm+gNWu98usiqllAosvZNVKaXqKA14pZSqo+p8wItIkojME5F1IrJGRO4OdE1WiEiwiPwoIj/76h8Z6JqsEhGniCwXkVmBrsUOEdkqIqtEZIWILAl0PVaISLSIvC8i630/Az0CXVN1iUhb32te/pYlIkMCXZcVIjLU93O7WkTeEpHgEzp/Xe/Bi0gCkGCMWSYiEcBS4FJjzNoAl1YtIiJAmDEmR0TcwHfA3caYRQEurdpE5B6gCxBpjLkw0PVYJSJbgS7GmFp3o42IvAosMMZM861mCzXGHAx0XVb5tj7Zjvdmyd8CXU91iEgi3p/Xvxhj8kXkXeAzY8wrJ6qGOn8Gb4zZaYxZ5ns/G1gHJAa2quozXjm+D92+t1rzr7KINAUuAKYFupb6RkQigTOB6QDGmKLaGO4+fYFNtSXcK3EBISLiAkI5wfcC1fmAr0xEmgOdgMWBrcQaX4tjBbAH+NoYU5vqfxq4DygLdCHHwABfichS39YatUVLIAN42dcimyYiYYEuyqYBwFuBLsIKY8x2YDyQBuwEMo0xX53IGupNwItIOPABMMQYkxXoeqwwxpQaYzrivRv4dBHpEOiaqkNELgT2GGOWBrqWY9TTGHMa3p1RB4nImYEuqJpcwGnAC8aYTkAuUOu27fa1li4G3gt0LVaISAzeDRZbAE2AMBG55kTWUC8C3te7/gB4wxjzYaDrscv36/V8oF+AS6munsDFvh7220CqiPwvsCVZZ4zZ4fvvHmAG3p1Sa4NtwLZKv/G9jzfwa5v+wDJjzO5AF2LR2cAWY0yGMaYY+BBIOZEF1PmA912knA6sM8Y8Feh6rBKRWBGJ9r0fgvd/mvWBrap6jDH3G2OaGmOa4/0Ve64x5oSewRwrEQnzXZzH1944F1gd2KqqxxizC0gXkba+T/UFasXigj+4klrWnvFJA7qLSKgvh/rivQZ4wvhzN8maoicwEFjl62MDPGCMOfLjyGuOBOBV3yoCB/CuMaZWLjespeKAGd6fT1zAm8aYLwJbkiWDgTd8bY7NwD8DXI8lIhIKnAPcGuharDLGLBaR94FlQAmwnBO8bUGdXyaplFL1VZ1v0SilVH2lAa+UUnWUBrxSStVRGvBKKVVHacArpVQdpQGv6hQRucu3a+IbNo5tLiJX+aMu3/hnisgyESkRkcv9NY9S5TTgVV1zB3C+MeZqG8c2BywHvO8ehepIA64H3rQ6h1J2aMCrOkNEJuPdYGumbx/uMBF5SUR+8m22dYnv+5qLyALf2fQyESm/ffy/QC/f3uNDReR6EZlUafxZItLb936OiDwqIouBHiLSWUS+8W1I9qVvm+oqjDFbjTErqd0br6lapD7cyarqCWPMbSLSD+hjjNkrIo/j3R7hBt92Dz+KyGy8u3KeY4wpEJE2eG+D74J3I65h5XvWi8j1R5guDFhtjHnIt9fRN8AlxpgMEfkHMBq4wV9/VqWqQwNe1WXn4t3sbJjv42AgGe+e3JNEpCNQCpxkY+xSvBvYAbQFOgBf+7Y0cOLdHlapgNKAV3WZAH8zxmyo8kmRR4DdwKl425QFhzm+hKptzMqPWyswxpRWmmeNMabWPA5P1Q/ag1d12ZfAYN9OfohIJ9/no4CdxpgyvBvRlV8kzQYiKh2/FegoIg4RSeLw2wRvAGLLn3cqIm4ROfm4/kmUskEDXtVlj+F9xOFKEVnt+xjgeeA6EVmEtz2T6/v8SqBEvA84Hwp8D2wBVuF9Ms+yQ01ijCkCLgfGisjPwAoOse+3iHQVkW3AFcAUEVlzfP6YSh2a7iaplFJ1lJ7BK6VUHaUBr5RSdZQGvFJK1VEa8EopVUdpwCulVB2lAa+UUnWUBrxSStVR/w89eor8G4RJFQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kernel = 'linear' # one of ['linear', 'poly', 'rbf']\n",
    "\n",
    "attack_point, poisoned = get_adversarial_examples(train_data, train_labels, 0, test_data, test_labels, kernel)\n",
    "clean = SVC(kernel=kernel)\n",
    "art_clean = SklearnClassifier(clean, clip_values=(0, 10))\n",
    "art_clean.fit(x=train_data, y=train_labels)\n",
    "\n",
    "plot_results(art_clean._model, train_data, train_labels, [], \"SVM Before Attack\")\n",
    "plot_results(poisoned._model, train_data, train_labels, [attack_point], \"SVM After Poison\")\n",
    "\n",
    "clean_acc_train = np.average(np.all(art_clean.predict(train_data) == train_labels, axis=1))\n",
    "poison_acc_train = np.average(np.all(poisoned.predict(train_data) == train_labels, axis=1))\n",
    "clean_acc_test = np.average(np.all(art_clean.predict(test_data) == test_labels, axis=1))\n",
    "poison_acc_test = np.average(np.all(poisoned.predict(test_data) == test_labels, axis=1))\n",
    "\n",
    "print(\"Clean model accuracy on train set ({} samples): {}\".format(len(train_labels), clean_acc_train))\n",
    "print(\"Poison model accuracy on train set ({} samples): {}\".format(len(train_labels), poison_acc_train))\n",
    "print(\"Clean model accuracy on test set ({} samples): {}\".format(len(test_labels), clean_acc_test))\n",
    "print(\"Poison model accuracy on test set ({} samples): {}\".format(len(test_labels), poison_acc_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A perfect classifier would have all points in yellow on the orange side of the decision boundary and all points in blue on the light blue side of the decision boundary. The attack point is shown in red and support vectors are circled.\n",
    "\n",
    "Even with small changes in overall accuracy, inserting just a *single* poison point can have major impacts on the model's ability to generalize well. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
